import path from 'node:path'
import { UserConfig, ConfigEnv, loadEnv } from 'vite'
import react from '@vitejs/plugin-react'
export default ({ mode }: ConfigEnv): UserConfig => {
  // 获取 .env 环境配置文件
  const env = loadEnv(mode, process.cwd())
  // console.log('env', mode, env);

  return {
    resolve: {
      // Vite路径别名配置
      alias: {
        '~': path.resolve('./src')
      }
    },
    plugins: [
      // vue(),
      // removeConsole(),
      // createSvgIconsPlugin({
      //   // 指定需要缓存的图标文件夹
      //   iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
      //   // 指定symbolId格式
      //   symbolId: 'icon-[dir]-[name]'
      // }),
      // // 启用 Brotli 压缩
      // compression({
      //   algorithm: 'gzip',
      //   ext: '.gz',
      // }),
      // viteCommonjs()
    ],
    base: './',
    // 本地反向代理解决浏览器跨域限制
    server: {
      host: '0.0.0.0',
      port: 4000,
      open: true, // 运行自动打开浏览器
      proxy: {
        [env.VITE_APP_BASE_API]: {
          // 线上API地址
          target: 'http://localhost:9001/api',
          // target: 'https://oem-manager.seventeen.tech/pack',
          // 本地API地址
          // target: 'http://192.168.1.30:9006/',
          changeOrigin: true,
          rewrite: (path) =>
            path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')
        }
      }
    },

    build: {
      rollupOptions: {
        output: {
          // 指定输出的目录，可以根据需要修改
          dir: env.VITE_OUTPUT_DIR || 'dist',
          // 指定输出的文件名，可以根据需要修改
          entryFileNames: 'app-[hash].js',
          chunkFileNames: 'chunks/[name]-[hash].js',
          assetFileNames: 'assets/[name]-[hash].[ext]'
        }
      },
      // 配置分包
      chunkSizeWarningLimit: 2000 // 设置分包大小的警告阈值
    }
  }
}
